/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"DB625542-51A5-4E8E-BBF3-58A4578D96E2",variableType:4}
 */
var i = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"487A418E-5E29-41D7-8E78-911A84150047",variableType:4}
 */
var es_preview = null;

/**
 * @properties={typeid:24,uuid:"903D1EB0-FB14-47B6-A4EF-CF9596C9C818"}
 */
function iniciar() 
{
	databaseManager.setAutoSave(false);
	controller.newRecord();
	
	fecha = application.getServerTimeStamp();
	letra = globals.zconf_letra_remito; 
	flete = 0;
	es_preview = 0;
	deposito = globals.zparam_deposito_default;  
	renglones_en_blanco(); 

	application.setNumpadEnterAsFocusNextEnabled(true);  //  TODO ?????? 

	elements.deposito.requestFocus();  
	return true;	
	
}

/**
 * @properties={typeid:24,uuid:"69AE3C93-305A-4B68-90E6-0E1060364E1E"}
 * @AllowToRunInFind
 */
function confirmar() 
{
	

	cliente_id = null   //  permitir cliente null (definicion de tabla)
//  VALIDACION campos	

	if (deposito == null || fecha == null ||  deposito_destino == null)
	{
		var aux_mensaje = ' ';
	
		if (fecha == null)
			aux_mensaje = 'fecha';
		if (deposito == null)
			aux_mensaje = 'deposito';
		if (deposito_destino == null)
			aux_mensaje = 'deposito';
			
		globals.gMensaje = 'Debe ingresar ' + aux_mensaje + ' para poder confirmar'
		globals.gMensajes()
		return false;
	} 


//  VALIDACION  RENGLONES =ver que no falten datos y ELIMINAR RENGLONES en BLANCO  
	var $cuantos = rem_cabecera_to_rem_detalle_ind.getSize()
	if($cuantos == 0)
	{
		globals.gMensaje = 'Debe ingresar renglones ';
		globals.gMensajes();
		return false;
	}
	i=1;
	while (i <= rem_cabecera_to_rem_detalle_ind.getSize())
	{
		rem_cabecera_to_rem_detalle_ind.setSelectedIndex(i);
		if ((rem_cabecera_to_rem_detalle_ind.cantidad == null || 
			 rem_cabecera_to_rem_detalle_ind.cantidad == 0)  &&
			(rem_cabecera_to_rem_detalle_ind.precio_unitario == null || 
			 rem_cabecera_to_rem_detalle_ind.precio_unitario == 0))
			{
				rem_cabecera_to_rem_detalle_ind.deleteRecord(i);
			}
			else
				i++
				
	}  
	for ( i = 1 ; i <= rem_cabecera_to_rem_detalle_ind.getSize(); i++ )
	{
		rem_cabecera_to_rem_detalle_ind.setSelectedIndex(i);

		if (rem_cabecera_to_rem_detalle_ind.cantidad==null || rem_cabecera_to_rem_detalle_ind.cantidad==0)
		{
			globals.gMensaje = 'Debe informar Cantidad del renglon ' + i;
			globals.gMensajes();
			return false;
		}   
	}	
// OTROS DATOS CABECERA
	tipo = globals.zconf_tipo_remito_interno;
	rem_estado = globals.zconf_rem_ingresado;
	
// TODO  recontraprobar!!! 
// DESCUENTA de EXISTENCIAS de ese DEPOSITO y de STOCK  la cantidad total  y de los pendientes  
	for (i = 1 ; i <= rem_cabecera_to_rem_detalle_ind.getSize(); i++)
	{  // RESTA cantidad del renglon del remito de EXISTENCIAS del DEPOSITO ORIGEN  
		rem_cabecera_to_rem_detalle_ind.setSelectedIndex(i);
		
		globals.gdeposito_ind = deposito;  //  para la relacion  productos_to_existencias_x_dep_ind
		rem_cabecera_to_rem_detalle_ind.rem_detalle_to_productos_ind.productos_to_existencias_x_dep_ind.exi_cantidad -= rem_cabecera_to_rem_detalle_ind.cantidad
			
		// SUMA cantidad pend. entrega de EXISTENCIAS del DEPOSITO DESTINO
		globals.gdeposito_ind = deposito_destino;    //  para la relacion  productos_to_existencias_x_dep_ind
		rem_cabecera_to_rem_detalle_ind.rem_detalle_to_productos_ind.productos_to_existencias_x_dep_ind.exi_cantidad += rem_cabecera_to_rem_detalle_ind.cantidad
	} 

	
// NUMERACION
	var fs_nro_rem = databaseManager.getFoundSet(databaseManager.getDataSourceServerName(controller.getDataSource()),'numeracion_pr')
	fs_nro_rem.loadAllRecords()
	fs_nro_rem.find()
	fs_nro_rem.sucursal=sucursal
	fs_nro_rem.letra=letra
	fs_nro_rem.cod_comprobante=globals.zconf_numeracion_remito_int;
	var found=fs_nro_rem.search()
	if (found != 1)
    {	
	   globals.gMensaje = 'Sucursal o Letra o Tipo de comprobante incorrectos'
	   globals.gMensajes();
	   return false;  
    }
	fs_nro_rem.setSelectedIndex(1)
	fs_nro_rem.ultimo_numero= fs_nro_rem.ultimo_numero + 1
	nro_remito=fs_nro_rem.ultimo_numero;
	
// HISTORICO STOCK  = 1 mov. x la salida del origen, 1 mov. x la entrada al destino
	historico_stock(); 

	var estado_save=databaseManager.saveData();
	if (estado_save==true)
	{ 
		// GENERAR PDF SIEMPRE  
		var carpeta=globals.zconf_path_pdf  // TOMA de una GLOBALS el NOMBRE DE LA CARPETA P/dejar el remito.
		plugins.file.createFolder(carpeta); // CREA LA CARPETA PARA DEJAR EL REMITO 	
		//ARMO NOMBRE DEL PDF DE todos los CLIENTES  
		var nombre_remito=carpeta+'/Remito-'+letra+'-'+utils.numberFormat(sucursal,'0000')+'-'+utils.numberFormat(nro_remito,'00000000')+'.pdf';				
		forms.remitos_int_imp_ind.controller.print(true,false,plugins.pdf_output.getPDFPrinter(nombre_remito));
		
		globals.gMensaje ='Remito ' + letra + '-' + utils.numberFormat(sucursal,'0000') + '-' + utils.numberFormat(nro_remito,'00000000') +  '\nGenerado correctamente';
																		
		var resp=globals.DIALOGS.showQuestionDialog('Generador de Remitos',  globals.gMensaje, "Imprimir", "Enviar", "PDF" );
		
		
		if (resp == 'Imprimir')		
		{
			es_preview = 1;
		    forms.remitos_int_imp_ind.controller.showPrintPreview(true);  // TODO ver formato y donde se imprime
		}
		if (resp == 'Enviar')		
		{	
			// TODO 	enviar_por_mail(); 
		}
		if (resp == 'PDF')		
		{	
		// MUESTRO el pfd directamente		
			application.showURL('file:///' + nombre_remito);  
		}
	}
	else
	{	
		globals.gMensaje =' Remto no fue generado - Revise los datos ingresados'
		globals.DIALOGS.showInfoDialog('Generador de Remitos',  globals.gMensaje,  "OK")
	}
	return true
}

/**
 * Handle hide window.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"32B9F62E-7A83-437A-A4BC-0727F32B9AFC"}
 */
function salir(event) 
{
	if (es_preview==0)
	{
		if (cliente_id!=null)   // 011 si no ingresó nada no confirmar
		{
	    	var resp = globals.DIALOGS.showQuestionDialog( 'Confirma',  '¿Seguro que desea salir?' ,  'Si', 'No')	
			if (resp == 'Si')
			{
				databaseManager.revertEditedRecords();
				return true;
			}
			else
				return false;
		}
		else // 16/06/2011
		{	databaseManager.revertEditedRecords();
			return true;
		}

	}
	return true
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"1FE7F1EC-3EA6-4EA2-8BEA-F3C1999524A9"}
 */
function agregar_renglon(event)
{
	if (deposito!=null && deposito_destino != null)
		rem_cabecera_to_rem_detalle_ind.newRecord(false);
	else
	{
		globals.gMensaje='Debe elegir depositos primero';
		globals.gMensajes();
	}
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"F677F6D1-7AF2-4C4D-AD44-41D414BF12C1"}
 */
function eliminar_renglon(event) 
{
	
	if (rem_cabecera_to_rem_detalle_ind.getSize()!=0)
	{
		/*   NO se quiere la confirmacion cuando no se ingreso renglon
		var resp = globals.DIALOGS.showQuestionDialog( 'Confirma',  '¿Seguro que desea dar de baja el renglon? ',  'Si', 'No')
		if (resp == 'Si')
		{   */
		rem_cabecera_to_rem_detalle_ind.deleteRecord()
		// TODO   habilitar y comprobar
		// totalizar()   
	}
}

/**
 * @properties={typeid:24,uuid:"72705AB8-D652-46E6-9782-74D630BF4FCB"}
 */
function cancelar() 
{ 	
	//  databaseManager.rollbackEditedRecords(); // en version 6 se reemplaza x revertEditedRecords()  
	databaseManager.revertEditedRecords();
	iniciar();
}

/**
 * @properties={typeid:24,uuid:"C2F5CD2F-1CC5-40DF-A3B2-D14BAD47302B"}
 */
function historico_stock() 
{
	
var fs_hist = databaseManager.getFoundSet(databaseManager.getDataSourceServerName(controller.getDataSource()),'hist_stock');
fs_hist.newRecord();
for (  i = 1 ; i <= rem_cabecera_to_rem_detalle_ind.getSize(); i++ )
	{
	//  egreso del origen
	rem_cabecera_to_rem_detalle_ind.setSelectedIndex(i); 
	fs_hist.newRecord();
	fs_hist.cantidad     = rem_cabecera_to_rem_detalle_ind.cantidad;
	fs_hist.cliente_id   = cliente_id;  //  TODO  01/02/2011   va null????
	fs_hist.producto_id  = rem_cabecera_to_rem_detalle_ind.producto_id;
	fs_hist.fecha        = fecha;
	fs_hist.tipo         = globals.zconf_hist_egre_interno;  //4=egreso interno
	fs_hist.cantidad_signo = rem_cabecera_to_rem_detalle_ind.cantidad * (-1); // grabar con signo=NO hacer calculation
	fs_hist.deposito_id  = deposito;
	fs_hist.moneda_id    = globals.zparam_moneda_default;
	fs_hist.cantidad     = rem_cabecera_to_rem_detalle_ind.cantidad;
	fs_hist.comprob_tipo     = globals.zconf_numeracion_remito_int; 
	fs_hist.comprob_sucursal = sucursal;
	fs_hist.comprob_nro      = nro_remito;
	fs_hist.comprob_letra    = letra;
	//  ingreso  al destino
	rem_cabecera_to_rem_detalle_ind.setSelectedIndex(i); 
	fs_hist.newRecord();
	fs_hist.cantidad     = rem_cabecera_to_rem_detalle_ind.cantidad;
	fs_hist.cliente_id   = cliente_id;  //  TODO  01/02/2011   va null????
	fs_hist.producto_id  = rem_cabecera_to_rem_detalle_ind.producto_id;
	fs_hist.fecha        = fecha;
	fs_hist.tipo         = globals.zconf_hist_ingre_interno;  //3 ingreso interno
	fs_hist.cantidad_signo = rem_cabecera_to_rem_detalle_ind.cantidad; 
	fs_hist.deposito_id    = deposito_destino;
	fs_hist.moneda_id      = globals.zparam_moneda_default;
	fs_hist.cantidad       = rem_cabecera_to_rem_detalle_ind.cantidad;
	fs_hist.comprob_tipo     = globals.zconf_numeracion_remito_int; 
	fs_hist.comprob_sucursal = sucursal;
	fs_hist.comprob_nro      = nro_remito;
	fs_hist.comprob_letra    = letra;
	}
}

/**
 * @properties={typeid:24,uuid:"83B3903C-3256-4D7C-BBF4-D2A5373067F1"}
 */
function renglones_en_blanco() 
{
// pone 10 renglones en blanco 
	for ( i = 1 ; i <= 10 ; i++)
		rem_cabecera_to_rem_detalle_ind.newRecord(false);
	rem_cabecera_to_rem_detalle_ind.setSelectedIndex(1);
	
}

/**
 * @properties={typeid:24,uuid:"2770B405-0522-4318-9564-68EFBD3B58E7"}
 */
function onDataChange_deposito_destino() 
{
	if(deposito == deposito_destino)
	{
		globals.gMensaje = 'Depósito origen no debe ser igual que el depósito destino ';
		globals.gMensajes();
		deposito_destino = null;
		return false;
	}
	if(deposito == null || deposito_destino == null)
	{
		globals.gMensaje = 'Debe informar deposito ';
		globals.gMensajes();
		return false;
	}
	return true
}
